#include "limit.h"

uint8_t limited_flag[3] = {0};

void limit_gpio_init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    __HAL_RCC_GPIOB_CLK_ENABLE();

    GPIO_InitStruct.Pin = GPIO_PIN_1 | GPIO_PIN_4;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
    GPIO_InitStruct.Pin = GPIO_PIN_12 ;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}

void limit_check(uint8_t en[])
{

    if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_4) == GPIO_PIN_RESET && (en[0] == 1))
    {
        limited_flag[0] = 1;
        interpolation_para.endpoint_pulse = 0;
    }
    else
        limited_flag[0] = 0;

    if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_12) == GPIO_PIN_RESET && (en[1] == 1))
    {
        limited_flag[1] = 1;
        interpolation_para.endpoint_pulse = 0;
    }
    else
        limited_flag[1] = 0;

    if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1) == GPIO_PIN_RESET && (en[2] == 1))
    {
        limited_flag[2] = 1;
        z_axis_pul = 0;
    }
    else
        limited_flag[2] = 0;
}

